package Analizadores.Estructuras.Tipos;

import java.util.ArrayList;

import Analizadores.AnalizadorSintactico.Tipos;


public class RegistroTS {
//*************************************************************************************************
	private Tipos tipo;// tipo de la variable (entero, real,error)
	private int dir; //direccion de memoria de la variable
	private Clase clase;//si es construido o es una variable
	private int posiciones;//numero de posiciones que ocupa
	private ArrayList<Object> estrucTipo;
	private String tipRef;
//*************************************************************************************************	
	//constructora
	public RegistroTS(){
		clase = Clase.variable;
	}
	public RegistroTS(final Tipos tipo,final int dir,final Clase c, final ArrayList<Object> estructura,int pos) {
		this.tipo = tipo;
		this.dir = dir;
		clase = c;
		estrucTipo = estructura;
		posiciones = pos;
		tipRef ="";
	}
	public String getTipRef() {
		return tipRef;
	}
	public void setTipRef(String tipRef) {
		this.tipRef = tipRef;
	}
	public RegistroTS(final Tipos tipo,final int dir,final Clase c, final ArrayList<Object> estructura,int pos,String ref) {
		this.tipo = tipo;
		this.dir = dir;
		clase = c;
		estrucTipo = estructura;
		posiciones = pos;
		tipRef = ref;
	}
	
	public Tipos getTipo() {
		return tipo;
	}

	public void setTipo(Tipos tipo) {
		this.tipo = tipo;
	}

	public int getDir() {
		return dir;
	}

	public void setDir(int dir) {
		this.dir = dir;
	}

	public int getPosiciones() {
		return posiciones;
	}

	public void setPosiciones(int posiciones) {
		this.posiciones = posiciones;
	}

	//Setters
	public void setClase(Clase clase) {
		this.clase = clase;
	}
	public void setEstrucTipo(ArrayList<Object> estrucTipo) {
		this.estrucTipo = estrucTipo;
	}
	//-------------------------------------------------------------------------------------------------	
	//getters
	public Tipos dameTipo() {
		return tipo;
	}
//-------------------------------------------------------------------------------------------------	
	public int dameDir() {
		return dir;
	}
	
	public Clase getClase() {
		return clase;
	}
	public ArrayList<Object> getEstrucTipo() {
		return estrucTipo;
	}
//*************************************************************************************************
}
